home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / ADV350.ZIP / getin.for < prev    next >
Text File  |  1990-11-22  |  1KB  |  45 lines

  1.       SUBROUTINE GETIN(WORD1,WORD1X,WORD2,WORD2X)
  2. C
  3. C  GET A COMMAND FROM THE ADVENTURER.  SNARF OUT THE FIRST WORD, PAD IT WITH
  4. C  BLANKS, AND RETURN IT IN WORD1.  CHARS 5 THRU 8 ARE RETURNED IN WORD1X, IN
  5. C  CASE WE NEED TO PRINT OUT THE WHOLE WORD IN AN ERROR MESSAGE.  ANY NUMBER OF
  6. C  BLANKS MAY FOLLOW THE WORD.  IF A SECOND WORD APPEARS, IT IS RETURNED IN
  7. C  WORD2 (CHARS 5 THRU 8 IN WORD2X), ELSE WORD2 IS SET TO ZERO.
  8. C
  9. C  HERE WE HAVE ABANDONED THE FORTRAN 66 ORIGINAL, AND RECAST THIS SUBROUTINE
  10. C  IN FORTRAN 77 FORM, USING STRING OPERATORS.
  11. C
  12.       IMPLICIT INTEGER*4 (A-Z)
  13.       LOGICAL BLKLIN
  14.       CHARACTER*20 FRST
  15.       CHARACTER*8 CW1,CW2
  16.       CHARACTER*4 WORD1,WORD1X,WORD2,WORD2X,WD1,WD1X,WD2,WD2X
  17.       EQUIVALENCE (CW1,WD1), (CW1(5:8),WD1X),
  18.      1            (CW2,WD2), (CW2(5:8),WD2X)
  19.       COMMON /BLKCOM/BLKLIN
  20.  
  21.       IF(BLKLIN) WRITE(*,1)
  22.     1 FORMAT()
  23.    10 FRST=' '
  24.       READ(*,'(A)') FRST
  25.       CALL UPCASE(FRST)
  26.       IF(FRST.EQ.' ') FRST='NULL'
  27.       CALL SHIFTC('LEFT',FRST)
  28.       I=INDEX(FRST,' ')-1
  29.       CW1=FRST(1:I)
  30.       FRST(1:I)=' '
  31.       IF(FRST.EQ.' ') THEN
  32.          WD2=0
  33.       ELSE
  34.          CALL SHIFTC('LEFT',FRST)
  35.          I=INDEX(FRST,' ')-1
  36.          CW2=FRST(1:I)
  37.       ENDIF
  38.       WORD1=WD1
  39.       WORD1X=WD1X
  40.       WORD2=WD2
  41.       WORD2X=WD2X
  42.       RETURN
  43.       END
  44.       
  45.